跳到主要内容

Linux 学习

Linux 内核

Linux 的 内核网站

Linux 的核心版本编号有点类似如下的样子:

3.10.0-123.el7.x86_64
主版本.次版本.释出版本-修改版本

可以通过 uname -r 来查询内核版本,例如当前的 Deepin 的内核(2022/01)

$ uname -r
5.10.60-amd64-desktop

那各种发行版(Linux distributions)是什么呢?

因为 Linux 核心并非是一个完整的操作系统,Linux 核心 + 各种软件 才能够称之为操作系统,所以一些社群与商业公司将 Linux 核心配合自由软件,并提供完整的安装程序,这些称之为发行版。

为了让所有的 Linux distributions 开发不致于差异太大,且让这些开发商在开发的时候有所依据,还有 Linux Standard Base (LSB) 等标准来规范开发者,以及目录架构的 File system Hierarchy Standard (FHS)标准规范。

操作系统的核心能力

系统调用接口(System call interface):因为 Assembler(汇编语言)具有专一性,如果架构不同的话,每次要安装到不同的机器都得要重新编写汇编语言,所以为了方便程序开发者可以轻易的通过与核心的沟通,将硬件的资源进一步的利用, 于是需要有这个简易的接口来方便程序开发者。

程序管理(Process control):多任务环境调度能力,与 CPU 资源分配的能力

内存管理(Memory management):除了基本的内存管理控制,还包括在内存不足时提供许虚拟内存(swap)的能力

文件系统管理(Filesystem management):文件系统的管理,数据的输入输出(I/O)等工作,对不同文件格式的支持(例如 Windows 98 就不认识 NTFS 文件格式的硬盘)

设备的驱动(Device drivers):硬件的管理是核心的主要工作之一,设备的驱动程序就是核心需要做的事情,不过一般这个驱动都是厂家根据系统提供的接口开发的

著名的 GNU 计划

关于GNU计划、自由软件与开放源代码

GNU(GNU's Not Unix)所开发的几个重要软件:

GNU C (GCC) GNU C Library (glibc) Bash shell

自由软件的版权 GNU GPL:

"Free software" is a matter of liberty, not price. To understand the concept, you should think of "free speech", not "free beer". "Free software" refers to the users' freedom to run, copy, distribute, study, change, and improve the software

一个软件挂上了 GPL 版权宣告之后,他自然就成了自由软件!这个软件就具有下面的特色:

  • 取得软件与源代码:你可以根据自己的需求来执行这个自由软件;
  • 复制:你可以自由的复制该软件;
  • 修改:你可以将取得的源代码进行程序修改工作,使之适合你的工作;
  • 再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突;
  • 回馈:你应该将你修改过的程序码回馈于社群!

但请特别留意,你所修改的任何一个自由软件都不应该也不能这样:

  • 修改授权:你不能将一个 GPL 授权的自由软件,在你修改后而将他取消 GPL 授权
  • 单纯贩卖:你不能单纯的贩卖自由软件。

即如果你用了我的 GPL软件,那么必须你的软件也要开源,如果你不开源,那么就不能使用我的软件,你是否把你的软件商用和我没关系,如果你不能遵循 GPL 协议来开源,那么你付再多的钱也不能用 GPL 的软件, 事实上很多 GPL 软件是很多人共同完成的,每个人在前人的基础上做出自己的贡献,如果收费的话你把钱交给谁?

但是这个 “单纯的贩卖自由软件” 是指单纯贩卖软件本体是不合法的,但是可以通过提供服务来收取服务费(这块有点模糊,以后再补充)